package main

import (
	"net/http"

	"github.com/jackc/pgx/v5"
)

var db *pgx.Conn // 数据库连接

// 数据库用户表结构体
type User struct {
	UserType    string `json:"userType"`
	Username    string `json:"username"`
	Phonenumber string `json:"phonenumber"`
	Idnumber    string `json:"idnumber"`
	Email       string `json:"email"`
	Password    string `json:"password"`
}

type Returnshopinfo struct {
	ShopName   string `json:"shopname"`
	Category   string `json:"category"`
	Idnumber   string `json:"idnumber"`
	Introduce  string `json:"introduce"`
	Address    string `json:"address"`
	Money      string `json:"money"`
	Createtime string `json:"createtime"`
	State      string `json:"state"`
	Owner      string `json:"owner"`
	Imagename  string `json:"imagename"`
}

type Returnshopinfo2 struct {
	Shopname  string `json:"shopname"`
	Imagename string `json:"imagename"`
}

type Good struct {
	Shopname  string  `json:"shopname"`
	Goodname  string  `json:"goodname"`
	Goodprice float64 `json:"goodprice"`
	Goodcount int     `json:"goodcount"`
}

type Purchaseinfo struct {
	Username  string  `json:"username"`
	Shopname  string  `json:"shopname"`
	Goodname  string  `json:"goodname"`
	Goodcount int     `json:"goodcount"`
	Goodprice float64 `json:"goodprice"`
	Cost      float64 `json:"cost"`
}

type Comment struct {
	Username string `json:"username"`
	Shopname string `json:"shopname"`
	Goodname string `json:"goodname"`
	Text     string `json:"text"`
	Time     string `json:"time"`
}

func main() {

	connectToDB() //连接数据库
	// clearDB()     //清空数据库

	//登录界面
	http.HandleFunc("/api/login", loginHandler)       //登录函数触发器
	http.HandleFunc("/api/register", registerHandler) //注册函数触发器

	//商户界面
	http.HandleFunc("/api/bussiness/updateinfo", businessupdateHandler)         //商家信息更新函数触发器
	http.HandleFunc("/api/bussiness/registerShop", businessregisterHandler)     //商家信息更新函数触发器
	http.HandleFunc("/api/bussiness/shopmgr", shopgetHandler)                   //商家信息获取函数触发器
	http.HandleFunc("/api/bussiness/goodinfoget", goodinfogetHandler)           //商家获取商品信息函数触发器
	http.HandleFunc("/api/bussiness/goodmgr", goodmgrHandler)                   //商家管理商品函数触发器
	http.HandleFunc("/api/bussiness/purchaseinfoget", bspurchaseinfogetHandler) //商家获取购买流水表函数触发器
	http.HandleFunc("/api/bussiness/commentget", bsgetcommentHandler)           //商家获取评论函数触发器

	//管理员界面
	http.HandleFunc("/api/admin/userinfo", admingetHandler)               //管理员获取用户信息函数触发器
	http.HandleFunc("/api/admin/businessinfo", admingettHandler)          //管理员更新商户信息函数触发器
	http.HandleFunc("/api/admin/usermgr", adminmgrHandler)                //管理员增删改用户函数触发器
	http.HandleFunc("/api/admin/shopaudit", shopauditHandler)             //管理员审核商店函数触发器
	http.HandleFunc("/api/admin/shopmgr", shopmgrHandler)                 //商店信息更新函数触发器
	http.HandleFunc("/api/admin/goodmgr", usrgoodmgrHandler)              //管理员获取商品信息函数触发器
	http.HandleFunc("/api/admin/purchaseinfomgr", purchaseinfomgrHandler) //管理员获取购买流水表函数触发器
	http.HandleFunc("/api/admin/commentmgr", admincommentmgrHandler)      //管理员获取评论函数触发器

	//用户界面
	http.HandleFunc("/api/user/getshop", usergetshopHandler)      //用户获取用户信息函数触发器
	http.HandleFunc("/api/user/userinfo", userinfoHandler)        //用户获取用户信息函数触发器
	http.HandleFunc("/api/user/getgood", usrgetgoodHandler)       //用户获取商品信息函数触发器
	http.HandleFunc("/api/user/goodbuy", usrbuygoodHandler)       //用户购买商品函数触发器
	http.HandleFunc("/api/user/commentgive", givecommentHandler)  //用户发表评论函数触发器
	http.HandleFunc("/api/user/commentget", usrgetcommentHandler) //用户获取评论函数触发器

	http.ListenAndServe(":6616", nil) //监听端口
}
